package com.softeem.iov.dto;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 统一返回结果
 */
@Data
@Accessors(chain = true)  //开启链式编程
public class R {

    /**
     * 状态码  0-成功
     */
    private Integer code = -1;
    /**
     * 附加文本消息
     */
    private String msg;
    /**
     * 是否成功
     */
    private boolean success;
    /**
     * 附加数据（对象，集合：需要传递到控制层或前端数据）
     */
    private Object data;

    /**
     *  构造器私有化
     */
    private R(){}

    /**
     * 声明统一的成功返回结果对象
     * @return
     */
    public static R ok(){
        R r = new R();
        r.code = ResponseCode.OK;
        r.msg = "操作成功";
        r.success = true;
        return r;
    }

    /**
     * 声明统一的失败返回结果对象
     * @return
     */
    public static R fail(){
        R r = new R();
        r.code = ResponseCode.UNKNOW_ERR;
        r.msg = "操作失败";
        r.success = false;
        return r;
    }

}
